package com.hww.dianqu;

import java.util.ArrayList;
import java.util.List;

/**
 * 等分切割字符串
 * @author:Huangwenwei
 * @date:2014-6-12
 * @time:下午8:44:26
 */
public class Test1_spiltString {

	/**
	 * @param str4spilt
	 *            原始字符串
	 * @param spiltValue
	 *            切割值
	 * @param strDefault
	 *            默认填充字符
	 * @return List<String>
	 */
	public List<String> spiltString(String str4spilt, int spiltValue,
			String strDefault) {
		//装载切割之后个元素的集合
		List<String> strAfterSpilt = new ArrayList<String>();
		//获取被切割字符串的长度
		int strlength = str4spilt.length();

		if (!str4spilt.equals(null) && strlength <= spiltValue) {
			if (strlength < spiltValue) {
				for (int i = 0; i < (spiltValue - strlength); i++) {
					str4spilt += strDefault;
				}
			}
			strAfterSpilt.add(str4spilt);
			return strAfterSpilt;
		} else {
			char[] dst = new char[spiltValue];
			int spiltlength = 0;
			while ((strlength - spiltlength) > spiltValue) {
				try {
					str4spilt.getChars(spiltlength, (spiltlength + spiltValue),
							dst, 0);
					strAfterSpilt.add(String.valueOf(dst));
				} catch (Exception e) {
					e.printStackTrace();
				}
				spiltlength += spiltValue;
			}
			try {
				str4spilt.getChars(spiltlength, (strlength - 1), dst, 0);
				String strLast = String.valueOf(dst);
				for (int i = 0; i < strlength - spiltlength; i++) {
					strLast += strDefault;
				}
				strAfterSpilt.add(strLast);
			} catch (Exception e) {
				e.printStackTrace();
			}
			return strAfterSpilt;
		}
	}

	/**
	 * @param args
	 *            void
	 */
	public static void main(String[] args) {
		Test1_spiltString t = new Test1_spiltString();

		//获取系统当前时间戳，做为被切割的字符串
		String str4spile = String.valueOf(System.currentTimeMillis());
		System.out.println(t.spiltString(str4spile, 2,""));
		System.out.println(t.spiltString(str4spile, 2, "*"));
		System.out.println(t.spiltString(str4spile, 3, ""));
		System.out.println(t.spiltString(str4spile, 7, ""));

	}

}
